package com.lcf.system.dto;

import com.lcf.framework.annotation.DictTable;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 表翻译
 *
 * @author lcf
 */
@Data
@NoArgsConstructor
public class DictTableDTO {
    /**
     * 表名（如 sys_user）
     */
    private String tableName;
    /**
     * 主键字段名（如 user_id）
     */
    private String primaryKey;
    /**
     * 主键值集合（如 [1001, 1002]）
     */
    private Set<Object> ids = ConcurrentHashMap.newKeySet();
    /**
     * 要查询的字段（如 ["user_name", "email"]）
     */
    private String[] queryFields;
    /**
     * 目标实体字段名（如 ["creatorName", "creatorEmail"]）
     */
    private String[] targetFields;

    public DictTableDTO(DictTable dictTable) {
        this.tableName = dictTable.tableName();
        this.primaryKey = dictTable.primaryKey();
        this.queryFields = dictTable.fields();
        this.targetFields = dictTable.nameField();
    }

    public void addId(Object id) {
        if (id != null) {
            ids.add(id);
        }
    }
}
